0194. 转置文件【中等】
1. 📝 题目描述
给定一个文件 file.txt,转置它的内容。
你可以假设每行列数相同,并且每个字段由 ' ' 分隔。
示例:
假设 file.txt 文件内容如下:
txt
name age
alice 21
ryan 301
2
3
2
3
应当输出:
txt
name alice ryan
age 21 301
2
2
2. 🎯 s.1 - awk 转置
c
// Shell 题目,使用 Bash 实现
// awk '{
// for (i = 1; i <= NF; i++) {
// if (NR == 1) a[i] = $i
// else a[i] = a[i] " " $i
// }
// }
// END {
// for (i = 1; i <= NF; i++) print a[i]
// }' file.txt1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
js
// Shell 题目,使用 Bash 实现
// awk '{
// for (i = 1; i <= NF; i++) {
// if (NR == 1) a[i] = $i
// else a[i] = a[i] " " $i
// }
// }
// END {
// for (i = 1; i <= NF; i++) print a[i]
// }' file.txt1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
py
# Shell 题目,使用 Bash 实现
# awk '{
# for (i = 1; i <= NF; i++) {
# if (NR == 1) a[i] = $i
# else a[i] = a[i] " " $i
# }
# }
# END {
# for (i = 1; i <= NF; i++) print a[i]
# }' file.txt1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- 时间复杂度:
,其中 是行数, 是列数 - 空间复杂度:
,存储所有元素
算法思路:
- 这是一道 Shell 题目,使用
awk实现矩阵转置 - 遍历每行的每个字段,用数组
a[i]累积拼接第i列的所有元素 - 最后逐行输出每一列的内容